跳到主要内容

通过 Node-RED 发送电子邮件

本教程演示如何使用 Node-RED 通过 OV80i 摄像头设置自动化邮件通知。您将学习配置 Gmail 集成,并创建发送巡检警报、系统状态更新以及故障通知到您的邮箱的流程。

您将构建: 使用 Gmail SMTP 的自动邮件系统,将 OV80i 的检测结果、警报和通知发送给指定收件人。

实际应用场景: 当检测失败时立即收到邮件警报,向管理层发送每日质量报告,或通知维护团队系统问题——这一切都由您的视觉检测系统自动完成。

先决条件

  • OV80i 摄像头,具备 Node-RED 访问权限
  • 用于发送邮件的 Gmail 账户
  • 对 Node-RED 流的基础理解
  • 访问 Google 账户的安全设置

教程概览

我们将构建: 一个自动发送带有检测结果和系统警报的邮件通知的 Node-RED 流。

所需时间: 20-30 分钟(含 Gmail 设置)

所学技能: Gmail 应用密码设置、SMTP 配置、自动邮件通知

步骤 1:设置 Gmail 应用密码

1.1 启用两步验证

  1. 在 accounts.google.com 登录您的 Google 账户
  2. 在左侧导航菜单中点击“Security”(安全性)
  3. 找到“Signing in to Google”(使用 Google 登录)部分
  4. 点击“2-Step Verification”(两步验证)
  5. 按照提示启用两步验证(若尚未启用)
备注

在创建应用密码之前,需要启用两步验证。

1.2 生成应用密码

  1. 在启用两步验证后返回 Security 页面
  2. 点击“App passwords”(在“Signing in to Google”下)
  3. 选择“Mail”作为应用类型
  4. 选择“Other”作为设备类型
  5. 输入一个名称,例如“OV80i Node-RED Email”
  6. 点击“Generate”

1.3 保存应用密码

  1. 复制 Google 显示的 16 位字符密码
  2. 将其安全保存——您将用于 Node-RED 配置
  3. 备注:此密码仅显示一次。若丢失,请重新生成

检查点: 应已保存一个 16 位字符的 Gmail 应用密码,供 Node-RED 使用。

步骤 2:安装 Email 节点(如有需要)

2.1 检查 Email 节点

  1. 在 OV80i 摄像头上的 Node-RED 打开
  2. 在左侧调色板的输出区域查找名为 "email" 的节点
  3. 若缺失,则需要安装 email 包

2.2 安装 Email 包(如需)

  1. 在 Node-RED 中点击汉堡菜单(≡)
  2. 选择 “Manage palette”
  3. 点击 “Install” 标签
  4. 搜索 “node-red-node-email”
  5. 点击该包旁边的 “Install”

步骤 3:创建基础邮件流

3.1 添加所需节点

  1. 导航到 IO Block 以访问 Node-RED
  2. 从调色板将以下节点拖到画布上:
    • Inject 节点(用于测试)
    • Email 节点(来自输出区)
  3. 将 Inject 输出连接到 Email 输入

3.2 基本流程结构

Inject → Email

流程用途: 用于测试和基本通知的简易邮件发送。

image.png

步骤 4:配置邮件内容

4.1 设置注入节点

  1. 双击注入节点 以打开属性
  2. 设置载荷
    • 载荷类型: "string"

    • 载荷值:您的邮件正文文本(例如,"Inspection alert from OV80i")

      image.png

4.2 示例基础配置

载荷(邮件正文):

Inspection completed at Station 1
Status: Alert triggered
Time: Check timestamp for details

主题(邮件主题):

OV80i Inspection Alert - Station 1

4.3 保存注入配置

  1. 为节点命名,例如 "Email Trigger"
  2. 单击 "Done" 以保存配置

步骤 5:配置 SMTP 设置

5.1 设置邮件节点

  1. 双击邮件节点 以打开属性
  2. 配置基础设置
    • 名称: "Send Alert Email"(或描述性名称)
    • To:收件人邮箱地址(例如,quality@company.com

5.2 配置 Gmail SMTP

  1. 服务器smtp.gmail.com
  2. 端口465
  3. 勾选 "Use secure connection"
  4. 认证类型Basic
  5. 用户名:您的完整 Gmail 地址(例如,alerts@company.com
  6. 密码:来自步骤 1 的 16 位应用程序密码

5.3 安全设置

  1. 勾选 "Check server certificate is valid"
  2. 确保所有设置均已正确输入
  3. 单击 "Done" 以保存邮件节点配置

检查点: 邮件节点不应显示错误指示标志,并应显示收件人地址。

image.png

步骤 6:测试您的邮件流程

6.1 部署与测试

  1. 点击右上角的“Deploy”按钮
  2. 等待“Successfully deployed”消息
  3. 点击注入节点按钮(左侧的灰色方块)

6.2 验证邮件投递

  1. 检查收件人邮箱的测试消息
  2. 如未出现在收件箱中,请检查垃圾邮件文件夹
  3. 在 Node-RED 调试面板中查找任何错误信息

6.3 如有需要,故障排除

常见问题:

  • 错误的应用程序密码:重新生成 Gmail 应用程序密码
  • SMTP 设置:请核对服务器和端口是否正确
  • 防火墙:确保允许外发 SMTP 流量

步骤 7:与检测结果整合

7.1 连接到检测流程

根据检测结果发送邮件:

  1. 找到主检测流程(以“All Block Outputs”开头)
  2. 将邮件流程添加为检测处理的一个分支
  3. 在检测逻辑之后连接,但与最终结果并行

7.2 示例整合流程

All Block Outputs → [Inspection Logic] → Final Pass/Fail

Format Email → Send Email

image.png

7.3 动态邮件内容

Replace the inject node with a function node for dynamic content:

// Dynamic email based on inspection results
const result = msg.payload.result ? "PASSED" : "FAILED";
const timestamp = new Date().toLocaleString();
const station = global.get("station_name") || "Unknown Station";

// Set email subject
msg.topic = `Inspection ${result} - ${station}`;

// Set email body
msg.payload = `Inspection Report:
Status: ${result}
Station: ${station}
Time: ${timestamp}
Image: ${msg.payload.image_url || "No image available"}

Please review and take appropriate action.`;

return msg;

步骤 8:完整 Flow 示例

8.1 导入现成 Flow

You can import this complete flow JSON:

[
{
"id": "email_node_1",
"type": "e-mail",
"name": "Send Inspection Alert",
"server": "smtp.gmail.com",
"port": "465",
"secure": true,
"authtype": "BASIC",
"to": "quality@company.com"
},
{
"id": "format_email",
"type": "function",
"name": "Format Email Content",
"func": "const result = msg.payload.result ? 'PASSED' : 'FAILED';\nmsg.topic = `Inspection ${result}`;\nmsg.payload = `Status: ${result}\\nTime: ${new Date()}`;\nreturn msg;"
}
]

8.2 根据需要进行自定义

  1. 更新贵组织的邮箱地址
  2. 根据您的具体需求修改邮件内容
  3. 调整时机 和触发条件
  4. 在生产部署前进行充分测试

故障排除

常见问题

问题症状解决方法
身份验证失败"Login failed" 错误验证应用密码是否正确并启用两步验证
连接超时未发送邮件,出现超时错误检查防火墙设置,验证 SMTP 服务器和端口
邮件在垃圾邮件邮件已送达但在垃圾邮件文件夹中将发件人加入信任名单,改进邮件内容
Flow 未触发无调试输出检查 Flow 连接和触发条件

调试您的邮件 Flow

  1. 在每个步骤后添加调试节点以跟踪数据
  2. 检查 Node-RED 日志以获取详细错误信息
  3. 如有需要,使用外部邮箱客户端测试 SMTP 设置
  4. 验证相机到 Gmail 服务器的网络连通性

成功!您的邮件集成已完成

您的 OV80i 相机现在可以:

发送自动化邮件通知以获取检查结果

传送包含检查详情的丰富、格式化的消息

支持多收件人以及升级流程

提供定时报告和摘要

根据检查结果处理条件消息

最佳实践

邮件管理

  • 使用描述性主题,带有清晰的状态指示
  • 保持消息简洁,但信息丰富
  • 包含时间戳和站点标识符
  • 在通知中提供可执行信息

安全性与可靠性

  • 保护应用程序密码 - 安全存储并定期轮换
  • 为系统通知使用专用电子邮箱账户
  • 定期测试邮件投递以确保可靠性
  • 监控投递失败并具备备份通知方式

Performance Considerations

  • 限制邮件发送频率 以避免触发垃圾邮件检测
  • 使用针对不同告警类型的合适收件人名单
  • 对高吞吐量系统实现速率限制
  • 在包含大附件时考虑邮件大小

Next Steps

在设置邮件通知后:

  1. 创建电子邮件模板 用于不同类型的告警
  2. 设置分发列表,针对各种利益相关者
  3. 实现对关键问题的升级工作流
  4. 为管理层创建定期报告
  5. 与其他通知系统集成(SMS、Teams 等)

🔗 See Also